#include <stdio.h>
#include <stdlib.h>
#include <modbus.h>
#include <errno.h>
#include <unistd.h>
int main(void)
{
	modbus_t	*ctx;
	uint16_t	tab_reg[32];
	int 		rc;
	int		i;

	ctx = modbus_new_rtu("/dev/ttymxc3", 115200, 'N', 8, 1);

	if(ctx == NULL)
	{
		printf("create modbus create\n");
		return -1;
	}

//	modbus_set_slave(ctx, 1);从机端设置从机地址

	if(modbus_connect(ctx) == -1)
	{
		printf("Connect failured: %s\n" , modbus_strerror(errno));
		modbus_free(ctx);
		return -1;
	}


	while(1)
	{
	rc = modbus_read_registers(ctx, 0, 10, tab_reg);

	if(rc == -1)
	{
		printf("modbus read failure: %s\n", modbus_strerror(errno));
		break;
	}
	
	for(i=0; i<rc; i++)
	{
		printf("reg[%d]=%d (0x%X)\n", i, tab_reg[i], tab_reg[i]);
	}

	sleep(1);
	}

	modbus_close(ctx);
	modbus_free(ctx);

	return 0;
}
